home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / dev / RCS / exabyte.h,v < prev    next >
Text File  |  1991-09-02  |  9KB  |  262 lines

  1. head     1.3;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.3
  10. date     91.09.02.14.04.31;  author jhh;  state Exp;
  11. branches ;
  12. next     1.2;
  13.  
  14. 1.2
  15. date     91.07.26.17.15.43;  author jhh;  state Exp;
  16. branches ;
  17. next     1.1;
  18.  
  19. 1.1
  20. date     91.06.24.22.46.06;  author jhh;  state Exp;
  21. branches ;
  22. next     ;
  23.  
  24.  
  25. desc
  26. @@
  27.  
  28.  
  29. 1.3
  30. log
  31. @added little-endian support
  32. @
  33. text
  34. @/*
  35.  * exabyte.h --
  36.  *
  37.  *    Declarations for Exabyte tape drives.
  38.  *
  39.  * Copyright 1991 Regents of the University of California
  40.  * Permission to use, copy, modify, and distribute this
  41.  * software and its documentation for any purpose and without
  42.  * fee is hereby granted, provided that this copyright
  43.  * notice appears in all copies.  The University of California
  44.  * makes no representations about the suitability of this
  45.  * software for any purpose.  It is provided "as is" without
  46.  * express or implied warranty.
  47.  *
  48.  * $Header: /sprite/src/lib/include/dev/RCS/exabyte.h,v 1.2 91/07/26 17:15:43 jhh Exp $ SPRITE (Berkeley)
  49.  */
  50.  
  51. #ifndef _EXABYTE
  52. #define _EXABYTE
  53.  
  54. #include <sys/scsi.h>
  55. /*
  56.  * Sense data for exb8200.
  57.  */
  58.  
  59. typedef struct {
  60.     ScsiClass7Sense    extSense;    /* 8 Bytes */
  61.     unsigned char pad8;            /* Reserved */
  62.     unsigned char pad;            /* Reserved */
  63.     unsigned char pad10;        /* Reserved */
  64.     unsigned char pad11;        /* Reserved */
  65.     /*
  66.      * SCSI 2 support.
  67.      */
  68.     unsigned char senseCode;        /* 0x4 if sense key is NOT_READY */
  69.     unsigned char senseCodeQualifier;    /* 00 - volume not mounted.
  70.                      * 01 - rewinding or loading */
  71.     unsigned char pad14;        /* Reserved */
  72.     unsigned char pad15;        /* Reserved */
  73.     unsigned char highErrorCnt;        /* High byte of error count */
  74.     unsigned char midErrorCnt;        /* Middle byte of error count */
  75.     unsigned char lowErrorCnt;        /* Low byte of error count */
  76.     /*
  77.      * Error bits that are command dependent.  0 is ok, 1 means error.
  78.      * These are defined on pages 37-38 of the User Manual, Rev.03
  79.      */
  80. #if BYTE_ORDER == BIG_ENDIAN
  81.     unsigned char PF        :1;    /* Power failure */
  82.     unsigned char BPE        :1;    /* SCSI Bus Parity Error */
  83.     unsigned char FPE        :1;    /* Formatted buffer parity error */
  84.     unsigned char ME        :1;    /* Media error */
  85.     unsigned char ECO        :1;    /* Error counter overflow */
  86.     unsigned char TME        :1;    /* Tape motion error */
  87.     unsigned char TNP        :1;    /* Tape not present */
  88.     unsigned char BOT        :1;    /* Set when tape is at BOT */
  89.  
  90.     unsigned char XFR        :1;    /* Transfer Abort Error */
  91.     unsigned char TMD        :1;    /* Tape Mark Detect Error */
  92.     unsigned char WP        :1;    /* Write Protect */
  93.     unsigned char FMKE        :1;    /* File Mark Error */
  94.     unsigned char URE        :1;    /* Data flow underrun. Media error. */
  95.     unsigned char WE1        :1;    /* Max write retries attempted */
  96.     unsigned char SSE        :1;    /* Servo System error.  Catastrophic */
  97.     unsigned char FE        :1;    /* Formatter error.  Catastrophic */
  98.  
  99.     unsigned char pad21        :6;    /* Reserved */
  100.     unsigned char WSEB        :1;    /* Write Splice Error, hit blank tape */
  101.     unsigned char WSEO        :1;    /* Write Splice Error, overshoot */
  102. #else /* BYTE_ORDER == LITTLE_ENDIAN */
  103.  
  104.     unsigned char BOT        :1;    /* Set when tape is at BOT */
  105.     unsigned char TNP        :1;    /* Tape not present */
  106.     unsigned char TME        :1;    /* Tape motion error */
  107.     unsigned char ECO        :1;    /* Error counter overflow */
  108.     unsigned char ME        :1;    /* Media error */
  109.     unsigned char FPE        :1;    /* Formatted buffer parity error */
  110.     unsigned char BPE        :1;    /* SCSI Bus Parity Error */
  111.     unsigned char PF        :1;    /* Power failure */
  112.  
  113.     unsigned char FE        :1;    /* Formatter error.  Catastrophic */
  114.     unsigned char SSE        :1;    /* Servo System error.  Catastrophic */
  115.     unsigned char WE1        :1;    /* Max write retries attempted */
  116.     unsigned char URE        :1;    /* Data flow underrun. Media error. */
  117.     unsigned char FMKE        :1;    /* File Mark Error */
  118.     unsigned char WP        :1;    /* Write Protect */
  119.     unsigned char TMD        :1;    /* Tape Mark Detect Error */
  120.     unsigned char XFR        :1;    /* Transfer Abort Error */
  121.  
  122.     unsigned char WSEO        :1;    /* Write Splice Error, overshoot */
  123.     unsigned char WSEB        :1;    /* Write Splice Error, hit blank tape */
  124.     unsigned char pad21        :6;    /* Reserved */
  125.  
  126. #endif /* BYTE_ORDER */
  127.  
  128.     unsigned char pad22;        /* Reserved */
  129.     unsigned char highRemainingTape;    /* High byte of remaining tape len */
  130.     unsigned char midRemainingTape;    /* Middle byte of remaining tape len */
  131.     unsigned char lowRemainingTape;    /* Low byte of remaining tape len */
  132.  
  133. } Exb8200Sense;                
  134.  
  135. typedef struct {
  136.     ScsiClass7Sense    extSense;    /* 8 Bytes */
  137.     unsigned char pad8;            /* Reserved */
  138.     unsigned char pad;            /* Reserved */
  139.     unsigned char pad10;        /* Reserved */
  140.     unsigned char underrun;        /* Underrun/overrun counter */
  141.     /*
  142.      * SCSI 2 support.
  143.      */
  144.     unsigned char senseCode;        /* 0x4 if sense key is NOT_READY */
  145.     unsigned char senseCodeQualifier;    /* 00 - volume not mounted.
  146.                      * 01 - rewinding or loading */
  147.     unsigned char pad14;        /* Reserved */
  148.     unsigned char pad15;        /* Reserved */
  149.     unsigned char highErrorCnt;        /* High byte of error count */
  150.     unsigned char midErrorCnt;        /* Middle byte of error count */
  151.     unsigned char lowErrorCnt;        /* Low byte of error count */
  152.     /*
  153.      * Error bits that are command dependent.  0 is ok, 1 means error.
  154.      * These are defined on pages 37-38 of the User Manual, Rev.03
  155.      */
  156. #if BYTE_ORDER == BIG_ENDIAN
  157.     unsigned char PF        :1;    /* Power failure */
  158.     unsigned char BPE        :1;    /* SCSI Bus Parity Error */
  159.     unsigned char FPE        :1;    /* Formatted buffer parity error */
  160.     unsigned char ME        :1;    /* Media error */
  161.     unsigned char ECO        :1;    /* Error counter overflow */
  162.     unsigned char TME        :1;    /* Tape motion error */
  163.     unsigned char TNP        :1;    /* Tape not present */
  164.     unsigned char BOT        :1;    /* Set when tape is at BOT */
  165.  
  166.     unsigned char XFR        :1;    /* Transfer Abort Error */
  167.     unsigned char TMD        :1;    /* Tape Mark Detect Error */
  168.     unsigned char WP        :1;    /* Write Protect */
  169.     unsigned char FMKE        :1;    /* File Mark Error */
  170.     unsigned char URE        :1;    /* Data flow underrun. Media error. */
  171.     unsigned char WE1        :1;    /* Max write retries attempted */
  172.     unsigned char SSE        :1;    /* Servo System error.  Catastrophic */
  173.     unsigned char FE        :1;    /* Formatter error.  Catastrophic */
  174.  
  175.     unsigned char pad21        :6;    /* Reserved */
  176.     unsigned char WSEB        :1;    /* Write Splice Error, hit blank tape */
  177.     unsigned char WSEO        :1;    /* Write Splice Error, overshoot */
  178. #else /* BYTE_ORDER == LITTLE_ENDIAN */
  179.  
  180.     unsigned char BOT        :1;    /* Set when tape is at BOT */
  181.     unsigned char TNP        :1;    /* Tape not present */
  182.     unsigned char TME        :1;    /* Tape motion error */
  183.     unsigned char ECO        :1;    /* Error counter overflow */
  184.     unsigned char ME        :1;    /* Media error */
  185.     unsigned char FPE        :1;    /* Formatted buffer parity error */
  186.     unsigned char BPE        :1;    /* SCSI Bus Parity Error */
  187.     unsigned char PF        :1;    /* Power failure */
  188.  
  189.     unsigned char FE        :1;    /* Formatter error.  Catastrophic */
  190.     unsigned char SSE        :1;    /* Servo System error.  Catastrophic */
  191.     unsigned char WE1        :1;    /* Max write retries attempted */
  192.     unsigned char URE        :1;    /* Data flow underrun. Media error. */
  193.     unsigned char FMKE        :1;    /* File Mark Error */
  194.     unsigned char WP        :1;    /* Write Protect */
  195.     unsigned char TMD        :1;    /* Tape Mark Detect Error */
  196.     unsigned char XFR        :1;    /* Transfer Abort Error */
  197.  
  198.     unsigned char WSEO        :1;    /* Write Splice Error, overshoot */
  199.     unsigned char WSEB        :1;    /* Write Splice Error, hit blank tape */
  200.     unsigned char pad21        :6;    /* Reserved */
  201.  
  202. #endif /* BYTE_ORDER */
  203.  
  204.     unsigned char pad22;        /* Reserved */
  205.     unsigned char highRemainingTape;    /* High byte of remaining tape len */
  206.     unsigned char midRemainingTape;    /* Middle byte of remaining tape len */
  207.     unsigned char lowRemainingTape;    /* Low byte of remaining tape len */
  208.  
  209.     unsigned char trackingRetry;    /* Tracking retry counter. */
  210.     unsigned char readWriteRetry;    /* Read/Write retry counter. */
  211.     unsigned char faultCode;        /* Fault symptom code. */
  212. } Exb8500Sense;                
  213.  
  214. /*
  215.  * Values for the drive-specific fields in Dev_TapeStatus.
  216.  */
  217.  
  218. /*
  219.  * bufferedMode
  220.  */
  221.  
  222. #define DEV_EXB8500_UNBUFFERED_MODE    0x00     /* Data is unbuffered. */
  223. #define DEV_EXB8500_BUFFERED_MODE    0x01    /* Data is buffered. */
  224.  
  225. /*
  226.  * Density
  227.  */
  228. #define DEV_EXB8500_8200_MODE        0x14    /* Exb8200 mode. */
  229.  
  230. #endif /* _EXABYTE */
  231.  
  232. @
  233.  
  234.  
  235. 1.2
  236. log
  237. @Added unbuffered/buffered flags. (checked in by shirriff)
  238. @
  239. text
  240. @d15 1
  241. a15 1
  242.  * $Header: /sprite/lib/forms/RCS/proto.h,v 1.7 91/02/09 13:24:52 ouster Exp $ SPRITE (Berkeley)
  243. d47 1
  244. d69 1
  245. d71 24
  246. d123 1
  247. d145 25
  248. @
  249.  
  250.  
  251. 1.1
  252. log
  253. @Initial revision
  254. @
  255. text
  256. @d21 1
  257. d74 1
  258. a74 1
  259. } Exb8200Sense;                /* Known to be 26 Bytes big (for
  260. d128 16
  261. @
  262.